package com.wgh.order.dto;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 订单DTO
 */
@Data
public class OrderDTO implements Serializable {

    /**
     * 订单ID
     */
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 订单编号
     */
    private String orderSn;

    /**
     * 订单总金额
     */
    private BigDecimal totalAmount;

    /**
     * 支付金额
     */
    private BigDecimal payAmount;

    /**
     * 运费金额
     */
    private BigDecimal freightAmount;

    /**
     * 优惠金额
     */
    private BigDecimal discountAmount;

    /**
     * 订单状态：0-待付款，1-待发货，2-待收货，3-待评价，4-已完成，5-已取消，6-已退款
     */
    private Integer orderStatus;

    /**
     * 支付状态：0-未支付，1-已支付，2-支付失败
     */
    private Integer payStatus;

    /**
     * 支付方式：0-支付宝，1-微信支付，2-银行卡支付
     */
    private Integer payType;

    /**
     * 支付时间
     */
    private LocalDateTime payTime;

    /**
     * 发货时间
     */
    private LocalDateTime deliveryTime;

    /**
     * 完成时间
     */
    private LocalDateTime finishTime;

    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;

    /**
     * 收货人姓名
     */
    private String receiverName;

    /**
     * 收货人电话
     */
    private String receiverPhone;

    /**
     * 收货地址
     */
    private String receiverAddress;

    /**
     * 商品总数
     */
    private Integer totalQuantity;

    /**
     * 订单备注
     */
    private String remark;

    /**
     * 交易流水号
     */
    private String transactionId;

    /**
     * 订单项列表
     */
    private List<OrderItemDTO> orderItems;
}